import axios from 'axios'
import { getToken } from '@/utils/auth'
import {Message} from 'element-ui'
import Qs from 'qs'

// 创建axios实例
const service = axios.create({
  baseURL: process.env.BASE_API, // api的base_url
  timeout: 1000*60*5 // 请求超时时间5分钟
})

//请求拦截器
service.interceptors.request.use((config) =>{
  console.log("发起请求:",config);
  if(config.headers['Content-Type'] == 'application/x-www-form-urlencoded'){//如果是表单请求头,则用Qs转换数据格式
    config.data = Qs.stringify(config.data)
  }
  config.headers['loginToken'] = getToken()  //在请求头中添加登录token
  return config;
},err =>{
  console.log(error) // for debug
  Promise.reject(error)
})

//响应拦截器
service.interceptors.response.use((response) =>{
    console.log("获得响应",response)
    if(response.status !=200){
      //出错了
      console.log("响应拦截器:出错了要做的事情")
    }else if(response.status==200 && response.data.status==200){
      //都返回200才把真正成功数据返回
      return response.data
    }else{
      Message.error({message:response.data.msg})
    }
  },
  error => {
    console.log('err' + error)// for debug
    Message.error({message:error.message})
    return Promise.reject(error)
  }
)
export default service
// //对get post put delete进行封装
// let base='';
// export const postRequest = (url,params) =>{
//   return service({
//     method:'post',
//     url:`${base}${url}`,
//     data:params,
//     headers:{
//       'Content-Type':'application/json'
//     }
//   });
// }

// export const putRequest = (url,params) =>{
//   return service({
//     method:'put',
//     url:`${base}${url}`,
//     data:params,
//     headers:{
//       'Content-Type':'application/json'
//     }
//   });
// }

// export const deleteRequest = (url) =>{
//   return service({
//     method:'delete',
//     url:`${base}${url}`,
//   });
// }

// export const getRequest = (url) =>{
//   return service({
//     method:'get',
//     url:`${base}${url}`,
//   });
// }
